{
  "nbformat": 4,
  "nbformat_minor": 0,
  "metadata": {
    "colab": {
      "name": "Untitled15.ipynb",
      "version": "0.3.2",
      "provenance": []
    },
    "kernelspec": {
      "name": "python3",
      "display_name": "Python 3"
    }
  },
  "cells": [
    {
      "cell_type": "code",
      "metadata": {
        "id": "TBMtQgzyiQqm",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "# Description: This program predicts the price of GOOG stock for a specific day\n",
        "#              using the Machine Learning algorithm called Support Vector Regression (SVR)\n",
        "#              & Linear Regression."
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "5w6D1ILNieox",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "#Import the libraries\n",
        "import pandas as pd\n",
        "import numpy as np\n",
        "from sklearn.svm import SVR\n",
        "from sklearn.linear_model import LinearRegression\n",
        "import matplotlib.pyplot as plt"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "H9ipXhgei3sR",
        "colab_type": "code",
        "colab": {
          "resources": {
            "http://localhost:8080/nbextensions/google.colab/files.js": {
              "data": "Ly8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIExMQwovLwovLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgovLyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLy8KLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLy8KLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQovLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAovLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAovLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KCi8qKgogKiBAZmlsZW92ZXJ2aWV3IEhlbHBlcnMgZm9yIGdvb2dsZS5jb2xhYiBQeXRob24gbW9kdWxlLgogKi8KKGZ1bmN0aW9uKHNjb3BlKSB7CmZ1bmN0aW9uIHNwYW4odGV4dCwgc3R5bGVBdHRyaWJ1dGVzID0ge30pIHsKICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpOwogIGVsZW1lbnQudGV4dENvbnRlbnQgPSB0ZXh0OwogIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHN0eWxlQXR0cmlidXRlcykpIHsKICAgIGVsZW1lbnQuc3R5bGVba2V5XSA9IHN0eWxlQXR0cmlidXRlc1trZXldOwogIH0KICByZXR1cm4gZWxlbWVudDsKfQoKLy8gTWF4IG51bWJlciBvZiBieXRlcyB3aGljaCB3aWxsIGJlIHVwbG9hZGVkIGF0IGEgdGltZS4KY29uc3QgTUFYX1BBWUxPQURfU0laRSA9IDEwMCAqIDEwMjQ7Ci8vIE1heCBhbW91bnQgb2YgdGltZSB0byBibG9jayB3YWl0aW5nIGZvciB0aGUgdXNlci4KY29uc3QgRklMRV9DSEFOR0VfVElNRU9VVF9NUyA9IDMwICogMTAwMDsKCmZ1bmN0aW9uIF91cGxvYWRGaWxlcyhpbnB1dElkLCBvdXRwdXRJZCkgewogIGNvbnN0IHN0ZXBzID0gdXBsb2FkRmlsZXNTdGVwKGlucHV0SWQsIG91dHB1dElkKTsKICBjb25zdCBvdXRwdXRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQob3V0cHV0SWQpOwogIC8vIENhY2hlIHN0ZXBzIG9uIHRoZSBvdXRwdXRFbGVtZW50IHRvIG1ha2UgaXQgYXZhaWxhYmxlIGZvciB0aGUgbmV4dCBjYWxsCiAgLy8gdG8gdXBsb2FkRmlsZXNDb250aW51ZSBmcm9tIFB5dGhvbi4KICBvdXRwdXRFbGVtZW50LnN0ZXBzID0gc3RlcHM7CgogIHJldHVybiBfdXBsb2FkRmlsZXNDb250aW51ZShvdXRwdXRJZCk7Cn0KCi8vIFRoaXMgaXMgcm91Z2hseSBhbiBhc3luYyBnZW5lcmF0b3IgKG5vdCBzdXBwb3J0ZWQgaW4gdGhlIGJyb3dzZXIgeWV0KSwKLy8gd2hlcmUgdGhlcmUgYXJlIG11bHRpcGxlIGFzeW5jaHJvbm91cyBzdGVwcyBhbmQgdGhlIFB5dGhvbiBzaWRlIGlzIGdvaW5nCi8vIHRvIHBvbGwgZm9yIGNvbXBsZXRpb24gb2YgZWFjaCBzdGVwLgovLyBUaGlzIHVzZXMgYSBQcm9taXNlIHRvIGJsb2NrIHRoZSBweXRob24gc2lkZSBvbiBjb21wbGV0aW9uIG9mIGVhY2ggc3RlcCwKLy8gdGhlbiBwYXNzZXMgdGhlIHJlc3VsdCBvZiB0aGUgcHJldmlvdXMgc3RlcCBhcyB0aGUgaW5wdXQgdG8gdGhlIG5leHQgc3RlcC4KZnVuY3Rpb24gX3VwbG9hZEZpbGVzQ29udGludWUob3V0cHV0SWQpIHsKICBjb25zdCBvdXRwdXRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQob3V0cHV0SWQpOwogIGNvbnN0IHN0ZXBzID0gb3V0cHV0RWxlbWVudC5zdGVwczsKCiAgY29uc3QgbmV4dCA9IHN0ZXBzLm5leHQob3V0cHV0RWxlbWVudC5sYXN0UHJvbWlzZVZhbHVlKTsKICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG5leHQudmFsdWUucHJvbWlzZSkudGhlbigodmFsdWUpID0+IHsKICAgIC8vIENhY2hlIHRoZSBsYXN0IHByb21pc2UgdmFsdWUgdG8gbWFrZSBpdCBhdmFpbGFibGUgdG8gdGhlIG5leHQKICAgIC8vIHN0ZXAgb2YgdGhlIGdlbmVyYXRvci4KICAgIG91dHB1dEVsZW1lbnQubGFzdFByb21pc2VWYWx1ZSA9IHZhbHVlOwogICAgcmV0dXJuIG5leHQudmFsdWUucmVzcG9uc2U7CiAgfSk7Cn0KCi8qKgogKiBHZW5lcmF0b3IgZnVuY3Rpb24gd2hpY2ggaXMgY2FsbGVkIGJldHdlZW4gZWFjaCBhc3luYyBzdGVwIG9mIHRoZSB1cGxvYWQKICogcHJvY2Vzcy4KICogQHBhcmFtIHtzdHJpbmd9IGlucHV0SWQgRWxlbWVudCBJRCBvZiB0aGUgaW5wdXQgZmlsZSBwaWNrZXIgZWxlbWVudC4KICogQHBhcmFtIHtzdHJpbmd9IG91dHB1dElkIEVsZW1lbnQgSUQgb2YgdGhlIG91dHB1dCBkaXNwbGF5LgogKiBAcmV0dXJuIHshSXRlcmFibGU8IU9iamVjdD59IEl0ZXJhYmxlIG9mIG5leHQgc3RlcHMuCiAqLwpmdW5jdGlvbiogdXBsb2FkRmlsZXNTdGVwKGlucHV0SWQsIG91dHB1dElkKSB7CiAgY29uc3QgaW5wdXRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaW5wdXRJZCk7CiAgaW5wdXRFbGVtZW50LmRpc2FibGVkID0gZmFsc2U7CgogIGNvbnN0IG91dHB1dEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChvdXRwdXRJZCk7CiAgb3V0cHV0RWxlbWVudC5pbm5lckhUTUwgPSAnJzsKCiAgY29uc3QgcGlja2VkUHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CiAgICBpbnB1dEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgKGUpID0+IHsKICAgICAgcmVzb2x2ZShlLnRhcmdldC5maWxlcyk7CiAgICB9KTsKICB9KTsKCiAgY29uc3QgY2FuY2VsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJyk7CiAgaW5wdXRFbGVtZW50LnBhcmVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoY2FuY2VsKTsKICBjYW5jZWwudGV4dENvbnRlbnQgPSAnQ2FuY2VsIHVwbG9hZCc7CiAgY29uc3QgY2FuY2VsUHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CiAgICBjYW5jZWwub25jbGljayA9ICgpID0+IHsKICAgICAgcmVzb2x2ZShudWxsKTsKICAgIH07CiAgfSk7CgogIC8vIENhbmNlbCB1cGxvYWQgaWYgdXNlciBoYXNuJ3QgcGlja2VkIGFueXRoaW5nIGluIHRpbWVvdXQuCiAgY29uc3QgdGltZW91dFByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gewogICAgc2V0VGltZW91dCgoKSA9PiB7CiAgICAgIHJlc29sdmUobnVsbCk7CiAgICB9LCBGSUxFX0NIQU5HRV9USU1FT1VUX01TKTsKICB9KTsKCiAgLy8gV2FpdCBmb3IgdGhlIHVzZXIgdG8gcGljayB0aGUgZmlsZXMuCiAgY29uc3QgZmlsZXMgPSB5aWVsZCB7CiAgICBwcm9taXNlOiBQcm9taXNlLnJhY2UoW3BpY2tlZFByb21pc2UsIHRpbWVvdXRQcm9taXNlLCBjYW5jZWxQcm9taXNlXSksCiAgICByZXNwb25zZTogewogICAgICBhY3Rpb246ICdzdGFydGluZycsCiAgICB9CiAgfTsKCiAgaWYgKCFmaWxlcykgewogICAgcmV0dXJuIHsKICAgICAgcmVzcG9uc2U6IHsKICAgICAgICBhY3Rpb246ICdjb21wbGV0ZScsCiAgICAgIH0KICAgIH07CiAgfQoKICBjYW5jZWwucmVtb3ZlKCk7CgogIC8vIERpc2FibGUgdGhlIGlucHV0IGVsZW1lbnQgc2luY2UgZnVydGhlciBwaWNrcyBhcmUgbm90IGFsbG93ZWQuCiAgaW5wdXRFbGVtZW50LmRpc2FibGVkID0gdHJ1ZTsKCiAgZm9yIChjb25zdCBmaWxlIG9mIGZpbGVzKSB7CiAgICBjb25zdCBsaSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpJyk7CiAgICBsaS5hcHBlbmQoc3BhbihmaWxlLm5hbWUsIHtmb250V2VpZ2h0OiAnYm9sZCd9KSk7CiAgICBsaS5hcHBlbmQoc3BhbigKICAgICAgICBgKCR7ZmlsZS50eXBlIHx8ICduL2EnfSkgLSAke2ZpbGUuc2l6ZX0gYnl0ZXMsIGAgKwogICAgICAgIGBsYXN0IG1vZGlmaWVkOiAkewogICAgICAgICAgICBmaWxlLmxhc3RNb2RpZmllZERhdGUgPyBmaWxlLmxhc3RNb2RpZmllZERhdGUudG9Mb2NhbGVEYXRlU3RyaW5nKCkgOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbi9hJ30gLSBgKSk7CiAgICBjb25zdCBwZXJjZW50ID0gc3BhbignMCUgZG9uZScpOwogICAgbGkuYXBwZW5kQ2hpbGQocGVyY2VudCk7CgogICAgb3V0cHV0RWxlbWVudC5hcHBlbmRDaGlsZChsaSk7CgogICAgY29uc3QgZmlsZURhdGFQcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsKICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsKICAgICAgcmVhZGVyLm9ubG9hZCA9IChlKSA9PiB7CiAgICAgICAgcmVzb2x2ZShlLnRhcmdldC5yZXN1bHQpOwogICAgICB9OwogICAgICByZWFkZXIucmVhZEFzQXJyYXlCdWZmZXIoZmlsZSk7CiAgICB9KTsKICAgIC8vIFdhaXQgZm9yIHRoZSBkYXRhIHRvIGJlIHJlYWR5LgogICAgbGV0IGZpbGVEYXRhID0geWllbGQgewogICAgICBwcm9taXNlOiBmaWxlRGF0YVByb21pc2UsCiAgICAgIHJlc3BvbnNlOiB7CiAgICAgICAgYWN0aW9uOiAnY29udGludWUnLAogICAgICB9CiAgICB9OwoKICAgIC8vIFVzZSBhIGNodW5rZWQgc2VuZGluZyB0byBhdm9pZCBtZXNzYWdlIHNpemUgbGltaXRzLiBTZWUgYi82MjExNTY2MC4KICAgIGxldCBwb3NpdGlvbiA9IDA7CiAgICB3aGlsZSAocG9zaXRpb24gPCBmaWxlRGF0YS5ieXRlTGVuZ3RoKSB7CiAgICAgIGNvbnN0IGxlbmd0aCA9IE1hdGgubWluKGZpbGVEYXRhLmJ5dGVMZW5ndGggLSBwb3NpdGlvbiwgTUFYX1BBWUxPQURfU0laRSk7CiAgICAgIGNvbnN0IGNodW5rID0gbmV3IFVpbnQ4QXJyYXkoZmlsZURhdGEsIHBvc2l0aW9uLCBsZW5ndGgpOwogICAgICBwb3NpdGlvbiArPSBsZW5ndGg7CgogICAgICBjb25zdCBiYXNlNjQgPSBidG9hKFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCwgY2h1bmspKTsKICAgICAgeWllbGQgewogICAgICAgIHJlc3BvbnNlOiB7CiAgICAgICAgICBhY3Rpb246ICdhcHBlbmQnLAogICAgICAgICAgZmlsZTogZmlsZS5uYW1lLAogICAgICAgICAgZGF0YTogYmFzZTY0LAogICAgICAgIH0sCiAgICAgIH07CiAgICAgIHBlcmNlbnQudGV4dENvbnRlbnQgPQogICAgICAgICAgYCR7TWF0aC5yb3VuZCgocG9zaXRpb24gLyBmaWxlRGF0YS5ieXRlTGVuZ3RoKSAqIDEwMCl9JSBkb25lYDsKICAgIH0KICB9CgogIC8vIEFsbCBkb25lLgogIHlpZWxkIHsKICAgIHJlc3BvbnNlOiB7CiAgICAgIGFjdGlvbjogJ2NvbXBsZXRlJywKICAgIH0KICB9Owp9CgpzY29wZS5nb29nbGUgPSBzY29wZS5nb29nbGUgfHwge307CnNjb3BlLmdvb2dsZS5jb2xhYiA9IHNjb3BlLmdvb2dsZS5jb2xhYiB8fCB7fTsKc2NvcGUuZ29vZ2xlLmNvbGFiLl9maWxlcyA9IHsKICBfdXBsb2FkRmlsZXMsCiAgX3VwbG9hZEZpbGVzQ29udGludWUsCn07Cn0pKHNlbGYpOwo=",
              "ok": true,
              "headers": [
                [
                  "content-type",
                  "application/javascript"
                ]
              ],
              "status": 200,
              "status_text": ""
            }
          },
          "base_uri": "https://localhost:8080/",
          "height": 312
        },
        "outputId": "a53ac67a-9aee-4a97-b828-3da989876e55"
      },
      "source": [
        "#Load the data\n",
        "#from google.colab import files # Use to load data on Google Colab\n",
        "#uploaded = files.upload() # Use to load data on Google Colab\n",
        "df = pd.read_csv('GOOG_30_days.csv')\n",
        "df.head(7)"
      ],
      "execution_count": 3,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "text/html": [
              "\n",
              "     <input type=\"file\" id=\"files-abfc1e82-1ab8-4ca9-97c4-f2151d5a5bb9\" name=\"files[]\" multiple disabled />\n",
              "     <output id=\"result-abfc1e82-1ab8-4ca9-97c4-f2151d5a5bb9\">\n",
              "      Upload widget is only available when the cell has been executed in the\n",
              "      current browser session. Please rerun this cell to enable.\n",
              "      </output>\n",
              "      <script src=\"/nbextensions/google.colab/files.js\"></script> "
            ],
            "text/plain": [
              "<IPython.core.display.HTML object>"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "stream",
          "text": [
            "Saving GOOG_30_days.csv to GOOG_30_days (5).csv\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/html": [
              "<div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>Date</th>\n",
              "      <th>Open</th>\n",
              "      <th>High</th>\n",
              "      <th>Low</th>\n",
              "      <th>Close</th>\n",
              "      <th>Adj Close</th>\n",
              "      <th>Volume</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>2019-06-03</td>\n",
              "      <td>1065.500000</td>\n",
              "      <td>1065.500000</td>\n",
              "      <td>1025.000000</td>\n",
              "      <td>1036.229980</td>\n",
              "      <td>1036.229980</td>\n",
              "      <td>5130600</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>2019-06-04</td>\n",
              "      <td>1042.900024</td>\n",
              "      <td>1056.050049</td>\n",
              "      <td>1033.689941</td>\n",
              "      <td>1053.050049</td>\n",
              "      <td>1053.050049</td>\n",
              "      <td>2833500</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>2019-06-05</td>\n",
              "      <td>1051.540039</td>\n",
              "      <td>1053.550049</td>\n",
              "      <td>1030.489990</td>\n",
              "      <td>1042.219971</td>\n",
              "      <td>1042.219971</td>\n",
              "      <td>2168400</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>2019-06-06</td>\n",
              "      <td>1044.989990</td>\n",
              "      <td>1047.489990</td>\n",
              "      <td>1033.699951</td>\n",
              "      <td>1044.339966</td>\n",
              "      <td>1044.339966</td>\n",
              "      <td>1703200</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>2019-06-07</td>\n",
              "      <td>1050.630005</td>\n",
              "      <td>1070.920044</td>\n",
              "      <td>1048.400024</td>\n",
              "      <td>1066.040039</td>\n",
              "      <td>1066.040039</td>\n",
              "      <td>1802400</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>5</th>\n",
              "      <td>2019-06-10</td>\n",
              "      <td>1072.979980</td>\n",
              "      <td>1092.660034</td>\n",
              "      <td>1072.322021</td>\n",
              "      <td>1080.380005</td>\n",
              "      <td>1080.380005</td>\n",
              "      <td>1464200</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>6</th>\n",
              "      <td>2019-06-11</td>\n",
              "      <td>1093.979980</td>\n",
              "      <td>1101.989990</td>\n",
              "      <td>1077.603027</td>\n",
              "      <td>1078.719971</td>\n",
              "      <td>1078.719971</td>\n",
              "      <td>1436700</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>"
            ],
            "text/plain": [
              "         Date         Open         High  ...        Close    Adj Close   Volume\n",
              "0  2019-06-03  1065.500000  1065.500000  ...  1036.229980  1036.229980  5130600\n",
              "1  2019-06-04  1042.900024  1056.050049  ...  1053.050049  1053.050049  2833500\n",
              "2  2019-06-05  1051.540039  1053.550049  ...  1042.219971  1042.219971  2168400\n",
              "3  2019-06-06  1044.989990  1047.489990  ...  1044.339966  1044.339966  1703200\n",
              "4  2019-06-07  1050.630005  1070.920044  ...  1066.040039  1066.040039  1802400\n",
              "5  2019-06-10  1072.979980  1092.660034  ...  1080.380005  1080.380005  1464200\n",
              "6  2019-06-11  1093.979980  1101.989990  ...  1078.719971  1078.719971  1436700\n",
              "\n",
              "[7 rows x 7 columns]"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 3
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "w1MbOkd5jOaI",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "#Create the lists / X and Y data sets\n",
        "dates = []\n",
        "prices = []"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "_qQhoMWrjYdo",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 34
        },
        "outputId": "6ecfec95-0288-41ac-a832-f7f5d11aacd4"
      },
      "source": [
        "#Get the number of rows and columns in the data set\n",
        "df.shape"
      ],
      "execution_count": 5,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "(20, 7)"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 5
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "3IunzSBjjebu",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 77
        },
        "outputId": "7c818380-2c7a-4874-f672-7118bdb8b85c"
      },
      "source": [
        "#Get the last row of data (this will be the data that we test on)\n",
        "df.tail(1)"
      ],
      "execution_count": 6,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/html": [
              "<div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>Date</th>\n",
              "      <th>Open</th>\n",
              "      <th>High</th>\n",
              "      <th>Low</th>\n",
              "      <th>Close</th>\n",
              "      <th>Adj Close</th>\n",
              "      <th>Volume</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>19</th>\n",
              "      <td>2019-06-28</td>\n",
              "      <td>1076.390015</td>\n",
              "      <td>1081.0</td>\n",
              "      <td>1073.369995</td>\n",
              "      <td>1080.910034</td>\n",
              "      <td>1080.910034</td>\n",
              "      <td>1693200</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>"
            ],
            "text/plain": [
              "          Date         Open    High  ...        Close    Adj Close   Volume\n",
              "19  2019-06-28  1076.390015  1081.0  ...  1080.910034  1080.910034  1693200\n",
              "\n",
              "[1 rows x 7 columns]"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 6
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "AHySmYVajue_",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 610
        },
        "outputId": "8bd13d71-2e12-45b4-ee9a-ce70704134c2"
      },
      "source": [
        "#Get all of the data except for the last row\n",
        "df = df.head(len(df)-1)\n",
        "df"
      ],
      "execution_count": 7,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/html": [
              "<div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>Date</th>\n",
              "      <th>Open</th>\n",
              "      <th>High</th>\n",
              "      <th>Low</th>\n",
              "      <th>Close</th>\n",
              "      <th>Adj Close</th>\n",
              "      <th>Volume</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>2019-06-03</td>\n",
              "      <td>1065.500000</td>\n",
              "      <td>1065.500000</td>\n",
              "      <td>1025.000000</td>\n",
              "      <td>1036.229980</td>\n",
              "      <td>1036.229980</td>\n",
              "      <td>5130600</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>2019-06-04</td>\n",
              "      <td>1042.900024</td>\n",
              "      <td>1056.050049</td>\n",
              "      <td>1033.689941</td>\n",
              "      <td>1053.050049</td>\n",
              "      <td>1053.050049</td>\n",
              "      <td>2833500</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>2019-06-05</td>\n",
              "      <td>1051.540039</td>\n",
              "      <td>1053.550049</td>\n",
              "      <td>1030.489990</td>\n",
              "      <td>1042.219971</td>\n",
              "      <td>1042.219971</td>\n",
              "      <td>2168400</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>2019-06-06</td>\n",
              "      <td>1044.989990</td>\n",
              "      <td>1047.489990</td>\n",
              "      <td>1033.699951</td>\n",
              "      <td>1044.339966</td>\n",
              "      <td>1044.339966</td>\n",
              "      <td>1703200</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>2019-06-07</td>\n",
              "      <td>1050.630005</td>\n",
              "      <td>1070.920044</td>\n",
              "      <td>1048.400024</td>\n",
              "      <td>1066.040039</td>\n",
              "      <td>1066.040039</td>\n",
              "      <td>1802400</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>5</th>\n",
              "      <td>2019-06-10</td>\n",
              "      <td>1072.979980</td>\n",
              "      <td>1092.660034</td>\n",
              "      <td>1072.322021</td>\n",
              "      <td>1080.380005</td>\n",
              "      <td>1080.380005</td>\n",
              "      <td>1464200</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>6</th>\n",
              "      <td>2019-06-11</td>\n",
              "      <td>1093.979980</td>\n",
              "      <td>1101.989990</td>\n",
              "      <td>1077.603027</td>\n",
              "      <td>1078.719971</td>\n",
              "      <td>1078.719971</td>\n",
              "      <td>1436700</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>7</th>\n",
              "      <td>2019-06-12</td>\n",
              "      <td>1078.000000</td>\n",
              "      <td>1080.930054</td>\n",
              "      <td>1067.540039</td>\n",
              "      <td>1077.030029</td>\n",
              "      <td>1077.030029</td>\n",
              "      <td>1061000</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>8</th>\n",
              "      <td>2019-06-13</td>\n",
              "      <td>1083.640015</td>\n",
              "      <td>1094.170044</td>\n",
              "      <td>1080.150024</td>\n",
              "      <td>1088.770020</td>\n",
              "      <td>1088.770020</td>\n",
              "      <td>1057700</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>9</th>\n",
              "      <td>2019-06-14</td>\n",
              "      <td>1086.420044</td>\n",
              "      <td>1092.689941</td>\n",
              "      <td>1080.171997</td>\n",
              "      <td>1085.349976</td>\n",
              "      <td>1085.349976</td>\n",
              "      <td>1111500</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>10</th>\n",
              "      <td>2019-06-17</td>\n",
              "      <td>1086.280029</td>\n",
              "      <td>1099.180054</td>\n",
              "      <td>1086.280029</td>\n",
              "      <td>1092.500000</td>\n",
              "      <td>1092.500000</td>\n",
              "      <td>941600</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>11</th>\n",
              "      <td>2019-06-18</td>\n",
              "      <td>1109.689941</td>\n",
              "      <td>1116.390015</td>\n",
              "      <td>1098.989990</td>\n",
              "      <td>1103.599976</td>\n",
              "      <td>1103.599976</td>\n",
              "      <td>1386700</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>12</th>\n",
              "      <td>2019-06-19</td>\n",
              "      <td>1105.599976</td>\n",
              "      <td>1107.000000</td>\n",
              "      <td>1093.479980</td>\n",
              "      <td>1102.329956</td>\n",
              "      <td>1102.329956</td>\n",
              "      <td>1338800</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>13</th>\n",
              "      <td>2019-06-20</td>\n",
              "      <td>1119.989990</td>\n",
              "      <td>1120.119995</td>\n",
              "      <td>1104.739990</td>\n",
              "      <td>1111.420044</td>\n",
              "      <td>1111.420044</td>\n",
              "      <td>1262000</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>14</th>\n",
              "      <td>2019-06-21</td>\n",
              "      <td>1109.239990</td>\n",
              "      <td>1124.109985</td>\n",
              "      <td>1108.079956</td>\n",
              "      <td>1121.880005</td>\n",
              "      <td>1121.880005</td>\n",
              "      <td>1947600</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>15</th>\n",
              "      <td>2019-06-24</td>\n",
              "      <td>1119.609985</td>\n",
              "      <td>1122.000000</td>\n",
              "      <td>1111.010010</td>\n",
              "      <td>1115.520020</td>\n",
              "      <td>1115.520020</td>\n",
              "      <td>1395600</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>16</th>\n",
              "      <td>2019-06-25</td>\n",
              "      <td>1112.660034</td>\n",
              "      <td>1114.349976</td>\n",
              "      <td>1083.800049</td>\n",
              "      <td>1086.349976</td>\n",
              "      <td>1086.349976</td>\n",
              "      <td>1546900</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>17</th>\n",
              "      <td>2019-06-26</td>\n",
              "      <td>1086.500000</td>\n",
              "      <td>1092.969971</td>\n",
              "      <td>1072.239990</td>\n",
              "      <td>1079.800049</td>\n",
              "      <td>1079.800049</td>\n",
              "      <td>1810900</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>18</th>\n",
              "      <td>2019-06-27</td>\n",
              "      <td>1084.000000</td>\n",
              "      <td>1087.099976</td>\n",
              "      <td>1075.290039</td>\n",
              "      <td>1076.010010</td>\n",
              "      <td>1076.010010</td>\n",
              "      <td>1004300</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>"
            ],
            "text/plain": [
              "          Date         Open         High  ...        Close    Adj Close   Volume\n",
              "0   2019-06-03  1065.500000  1065.500000  ...  1036.229980  1036.229980  5130600\n",
              "1   2019-06-04  1042.900024  1056.050049  ...  1053.050049  1053.050049  2833500\n",
              "2   2019-06-05  1051.540039  1053.550049  ...  1042.219971  1042.219971  2168400\n",
              "3   2019-06-06  1044.989990  1047.489990  ...  1044.339966  1044.339966  1703200\n",
              "4   2019-06-07  1050.630005  1070.920044  ...  1066.040039  1066.040039  1802400\n",
              "5   2019-06-10  1072.979980  1092.660034  ...  1080.380005  1080.380005  1464200\n",
              "6   2019-06-11  1093.979980  1101.989990  ...  1078.719971  1078.719971  1436700\n",
              "7   2019-06-12  1078.000000  1080.930054  ...  1077.030029  1077.030029  1061000\n",
              "8   2019-06-13  1083.640015  1094.170044  ...  1088.770020  1088.770020  1057700\n",
              "9   2019-06-14  1086.420044  1092.689941  ...  1085.349976  1085.349976  1111500\n",
              "10  2019-06-17  1086.280029  1099.180054  ...  1092.500000  1092.500000   941600\n",
              "11  2019-06-18  1109.689941  1116.390015  ...  1103.599976  1103.599976  1386700\n",
              "12  2019-06-19  1105.599976  1107.000000  ...  1102.329956  1102.329956  1338800\n",
              "13  2019-06-20  1119.989990  1120.119995  ...  1111.420044  1111.420044  1262000\n",
              "14  2019-06-21  1109.239990  1124.109985  ...  1121.880005  1121.880005  1947600\n",
              "15  2019-06-24  1119.609985  1122.000000  ...  1115.520020  1115.520020  1395600\n",
              "16  2019-06-25  1112.660034  1114.349976  ...  1086.349976  1086.349976  1546900\n",
              "17  2019-06-26  1086.500000  1092.969971  ...  1079.800049  1079.800049  1810900\n",
              "18  2019-06-27  1084.000000  1087.099976  ...  1076.010010  1076.010010  1004300\n",
              "\n",
              "[19 rows x 7 columns]"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 7
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "SuqKG1zyj9wn",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 34
        },
        "outputId": "4bcf1300-36b3-4d1b-c3e9-a8135b77b78b"
      },
      "source": [
        "#The new shape of the data\n",
        "df.shape"
      ],
      "execution_count": 8,
      "outputs": [
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "(19, 7)"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 8
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "4nXQpAL5kGd9",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "#Get all of the rows from the Date Column\n",
        "df_dates = df.loc[:, 'Date']\n",
        "#Get all of the rows from the Open Column\n",
        "df_open = df.loc[:, 'Open']"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "t8bAHUG5kYGZ",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "#Create the independent data set X\n",
        "for date in df_dates:\n",
        "  dates.append( [int(date.split('-')[2])])\n",
        "  \n",
        "#Create the dependent data se 'y'\n",
        "for open_price in df_open:\n",
        "  prices.append(float(open_price))"
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "JkKJke2DlFSu",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 34
        },
        "outputId": "41f79aa6-2fc9-4ff2-b462-cfdc3e53964e"
      },
      "source": [
        "#See what days were recorded\n",
        "print(dates)"
      ],
      "execution_count": 11,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "[[3], [4], [5], [6], [7], [10], [11], [12], [13], [14], [17], [18], [19], [20], [21], [24], [25], [26], [27]]\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "U-SsNS0llOo2",
        "colab_type": "code",
        "colab": {}
      },
      "source": [
        "def predict_prices(dates, prices, x):\n",
        "  \n",
        "  #Create the 3 Support Vector Regression models\n",
        "  svr_lin = SVR(kernel='linear', C= 1e3)\n",
        "  svr_poly= SVR(kernel='poly', C=1e3, degree=2)\n",
        "  svr_rbf = SVR(kernel='rbf', C=1e3, gamma=0.1)\n",
        "  \n",
        "  #Train the SVR models \n",
        "  svr_lin.fit(dates,prices)\n",
        "  svr_poly.fit(dates,prices)\n",
        "  svr_rbf.fit(dates,prices)\n",
        "  \n",
        "  #Create the Linear Regression model\n",
        "  lin_reg = LinearRegression()\n",
        "  #Train the Linear Regression model\n",
        "  lin_reg.fit(dates,prices)\n",
        "  \n",
        "  #Plot the models on a graph to see which has the best fit\n",
        "  plt.scatter(dates, prices, color='black', label='Data')\n",
        "  plt.plot(dates, svr_rbf.predict(dates), color='red', label='SVR RBF')\n",
        "  plt.plot(dates, svr_poly.predict(dates), color='blue', label='SVR Poly')\n",
        "  plt.plot(dates, svr_lin.predict(dates), color='green', label='SVR Linear')\n",
        "  plt.plot(dates, lin_reg.predict(dates), color='orange', label='Linear Reg')\n",
        "  plt.xlabel('Days')\n",
        "  plt.ylabel('Price')\n",
        "  plt.title('Regression')\n",
        "  plt.legend()\n",
        "  plt.show()\n",
        "  \n",
        "  return svr_rbf.predict(x)[0], svr_lin.predict(x)[0],svr_poly.predict(x)[0],lin_reg.predict(x)[0]\n",
        "  "
      ],
      "execution_count": 0,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "JCo2IQaHnb55",
        "colab_type": "code",
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 366
        },
        "outputId": "83c7dfa4-c405-4b98-f3f2-7a7326c5a62f"
      },
      "source": [
        "#Predict the price of GOOG on day 28\n",
        "predicted_price = predict_prices(dates, prices, [[28]])\n",
        "print(predicted_price)"
      ],
      "execution_count": 15,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "/usr/local/lib/python3.6/dist-packages/sklearn/svm/base.py:193: FutureWarning: The default value of gamma will change from 'auto' to 'scale' in version 0.22 to account better for unscaled features. Set gamma explicitly to 'auto' or 'scale' to avoid this warning.\n",
            "  \"avoid this warning.\", FutureWarning)\n"
          ],
          "name": "stderr"
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\nRK5CYII=\n",
            "text/plain": [
              "<Figure size 432x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": []
          }
        },
        {
          "output_type": "stream",
          "text": [
            "(1091.7058004910944, 1133.3133133337788, 1139.5444221912962, 1117.7087934280248)\n"
          ],
          "name": "stdout"
        }
      ]
    }
  ]
}
